#ifndef AVALON_CLIENTCONNECTION_HPP
#define AVALON_CLIENTCONNECTION_HPP
#include "Avalon/IO/Connection.hpp"
#include "Avalon/Threading/Async.hpp"

namespace Avalon {
namespace IO {

  /*! \class ClientConnection
   *  \brief Interface for the client side of a Connection.
   *  \author Kamal Mansouri <kranar@hotmail.com>
   */
  class ClientConnection : public Connection {
    public:

      virtual ~ClientConnection();

      //! Establishes a connection to a server.
      /*!
        \throw IOException if the connection failed.
      */
      virtual void Connect() = 0;
  };
}
}

#endif // AVALON_CLIENTCONNECTION_HPP
